package com.fowo.api.model.nav.sell.order;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Data
public class SubmitOrderParam {
    @JSONField(name = "order")
    public Order order;

    @Data
    public class Order {
        @JSONField(name = "ExpressName")
        public String expressName;
        @JSONField(name = "Weight")
        public long weight;
        @JSONField(name = "Country")
        public String country;
        @JSONField(name = "Province")
        public String province;
        @JSONField(name = "City")
        public String city;
        @JSONField(name = "AddressLine1")
        public String addressLine1;
        @JSONField(name = "AddressLine2")
        public String addressLine2;
        @JSONField(name = "Buyer")
        public String buyer;
        @JSONField(name = "Telephone")
        public String telephone;
        @JSONField(name = "Email")
        public String email;
        @JSONField(name = "PostCode")
        public String postCode;
        @JSONField(name = "TrackingNumber")
        public String trackingNumber;
        @JSONField(name = "OrderItems")
        public List<OrderItems> orderItemsList;
        @JSONField(name = "Length")
        public int length;
        @JSONField(name = "Width")
        public int width;
        @JSONField(name = "Height")
        public int height;
        @JSONField(name = "Quantity")
        public int quantity;
        @JSONField(name = "Remark")
        public String remark;
        @JSONField(name = "CustomOrderId")
        public String customOrderId;
        @JSONField(name = "IossTaxId")
        public String iossTaxId;
        @JSONField(name = "Doorplate")
        public String doorplate;
        @JSONField(name = "TaxNumber")
        public String taxNumber;
        @JSONField(name = "IdentityNumber")
        public String identityNumber;

        @Data
        public class OrderItems {
            @JSONField(name = "OrderItemType")
            public OrderItemType orderItemType;
            @Data
            public class OrderItemType {
                @JSONField(name = "DeclareName")
                public String declareName;
                @JSONField(name = "DeclareNameCn")
                public String declareNameCn;
                @JSONField(name = "DeclareValue")
                public BigDecimal declareValue;
                @JSONField(name = "Quantity")
                public int quantity;
                @JSONField(name = "Weight")
                public int weight;
                @JSONField(name = "SKU")
                public String sku;
                @JSONField(name = "WebLink")
                public String webLink;
                @JSONField(name = "HsCode")
                public String hsCode;
            }
        }
    }
}
